package com.ttg.model.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

/**
 * @author zhangjie
 * @date 2021/3/16 13:42
 */
@Data
@NoArgsConstructor
public class TagInfoDTO implements Serializable{
    private static final long serialVersionUID = -4715743943021012993L;
    /**
     * 自增主键
     */
    @JsonProperty("tagId")
    private Long tagId;

    /**
     * 标签类型id
     */
    @JsonProperty("tagClassId")
    private Long tagClassId;

    /**
     * 标签名称
     */
    @JsonProperty("tagName")
    private String tagName;

    /**
     * 标签英文名
     */
    @JsonProperty("tagEnName")
    private String tagEnName;

    /**
     * 标签描述
     */
    @JsonProperty("tagDescription")
    private String tagDescription;

    /**
     * 标签颜色
     */
    @JsonProperty("tagColor")
    private String tagColor;

    /**
     * 是否允许移动端显示
     */
    @JsonProperty("tagMobileShow")
    private Integer tagMobileShow;

    /**
     * 标签类型 0-普通标签，1-等级标签
     */
    @JsonProperty("tagType")
    private Integer tagType;

    /**
     * 数据口径: user-用户，merch-商户
     */
    @JsonProperty("tagDataSource")
    private String tagDataSource;


    /**
     * 更新方式：auto-自动更新，hand-手动更新（标签生成后，点击“更新"进行数据的更新）
     */
    @JsonProperty("updateType")
    private String updateType;

    /**
     * 更新时间范围：示例：20251020-20251020,为null表示不限制
     */
    @JsonProperty("updateDateScope")
    private String updateDateScope;

    /**
     * 更新频率，daily-每天，weekly-每周，monthly-每月
     */
    @JsonProperty("updateFrequency")
    private String updateFrequency;

    /**
     * 更新日期：更新频率=每周时，保存周一到周日(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday)（多个逗号分割），更新频率=每月时，保存1号-31号，倒数第一天-倒数第三天（多个逗号分割）
     */
    @JsonProperty("tagUpdateDates")
    private String tagUpdateDates;

    /**
     * 更新时间
     */
    @JsonProperty("tag_update_time")
    private LocalTime tagUpdateTime;

    /**
     * 是否启用  0正常 1弃用 4删除
     */
    @JsonProperty("tag_status")
    private Integer tagStatus;

    /**
     * 添加时间
     */
    @JsonProperty("addTime")
    private LocalDateTime addTime;

    /**
     * 添加人
     */
    @JsonProperty("addId")
    private Long addId;

    /**
     * 条件列表
     */
    @JsonProperty("conditionsInfoDTOList")
    private List<ConditionsInfoDTO> conditionsInfoDTOList;

}
